package com.example.icongyou.api;

import com.example.icongyou.bean.Student;
import java.util.List;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.DELETE;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.PUT;
import retrofit2.http.Path;

/**
 * 对应后端 StudentController 的 RESTful API 接口定义
 * 基础路径: /api/students
 */
public interface StudentApi {

    // POST /api/students - 注册/创建学生
    // 后端返回 Student 对象，前端接收 Student 对象 (密码字段为 null)
    @POST("api/students")
    Call<Student> createStudent(@Body Student student);

    // GET /api/students - 查询所有学生
    @GET("api/students")
    Call<List<Student>> getAllStudents();

    // GET /api/students/{id} - 根据学号查询单个学生
    @GET("api/students/{id}")
    Call<Student> getStudentById(@Path("id") String studentId);

    // GET /api/students/class/{className} - 根据班级查询学生
    @GET("api/students/class/{className}")
    Call<List<Student>> getStudentsByClass(@Path("className") String className);

    // PUT /api/students/{id} - 更新学生信息
    // 后端返回 String 消息
    @PUT("api/students/{id}")
    Call<String> updateStudent(
            @Path("id") String studentId,
            @Body Student studentDetails
    );

    // DELETE /api/students/{id} - 删除学生
    // 后端返回 204 No Content，使用 Call<Void>
    @DELETE("api/students/{id}")
    Call<Void> deleteStudent(@Path("id") String studentId);
}